package com.greentravel.dao;

import com.greentravel.model.Route;
import java.util.List;

/**
 * 交通线路数据访问对象接口
 * 定义对交通线路数据的操作方法
 */
public interface RouteDAO {

    /**
     * 添加交通线路
     * 
     * @param route 交通线路对象
     * @return 是否添加成功
     */
    boolean addRoute(Route route);

    /**
     * 根据线路ID删除交通线路
     * 
     * @param id 线路ID
     * @return 是否删除成功
     */
    boolean deleteRoute(int id);

    /**
     * 更新交通线路信息
     * 
     * @param route 交通线路对象
     * @return 是否更新成功
     */
    boolean updateRoute(Route route);

    /**
     * 根据线路ID查询交通线路
     * 
     * @param id 线路ID
     * @return 交通线路对象
     */
    Route getRouteById(int id);

    /**
     * 根据线路类型查询交通线路
     * 
     * @param routeType 线路类型（公交、地铁）
     * @return 交通线路列表
     */
    List<Route> getRoutesByType(String routeType);

    /**
     * 根据地区查询交通线路
     * 
     * @param region 地区
     * @return 交通线路列表
     */
    List<Route> getRoutesByRegion(String region);

    /**
     * 根据线路类型和地区查询交通线路
     * 
     * @param routeType 线路类型
     * @param region    地区
     * @return 交通线路列表
     */
    List<Route> getRoutesByTypeAndRegion(String routeType, String region);

    /**
     * 查询所有交通线路
     * 
     * @return 交通线路列表
     */
    List<Route> getAllRoutes();

    /**
     * 根据线路名称模糊查询交通线路
     * 
     * @param routeName 线路名称（模糊匹配）
     * @return 交通线路列表
     */
    List<Route> searchRoutesByName(String routeName);

    /**
     * 根据站点名称模糊查询经过该站的交通线路
     * 
     * @param stationName 站点名称（模糊匹配）
     * @return 交通线路列表
     */
    List<Route> searchRoutesByStation(String stationName);
}